﻿using System;
using System.Text;
using System.Collections.Generic;
using System.Data;
using Nop.Core.Domain.Customers;
using Nop.Core.Domain.Catalog;
using Nop.Core.Domain.Media;
using Nop.Core.Domain.Orders;
namespace Nop.Core.Domain.ShareBuy
{
    //ShareBuy
    public class ShareBuyItem : BaseEntity
    {
        private ICollection<ShareBuyComment> _shareBuyComments;
        private ICollection<ShareBuyPicture> _shareBuyPictures;
        private ICollection<ShareBuyCategory> _shareCategories;
        private ICollection<ShareBuyVote> _shareBuyVotes;

        /// <summary>
        /// CustomerId
        /// </summary>		
        public virtual int CustomerId { get; set; }
        public virtual Customer Customer { get; set; }

        /// <summary>
        /// CategoryId
        /// </summary>		
        //public virtual int CategoryId { get; set; }
        //public virtual Category Category { get; set; }

        /// <summary>
        /// Order
        /// </summary>
        public virtual int OrderId { get; set; }
        public virtual Order Order { get; set; }

        /// <summary>
        /// ProductId
        /// </summary>		
        public virtual int ProductId { get; set; }
        public virtual Product Product { get; set; }

        //Default picture
        public virtual int DefaultPictureId { get; set; }

        /// <summary>
        /// Title
        /// </summary>		
        public virtual string Title { get; set; }

        /// <summary>
        /// Description
        /// </summary>		
        public virtual string Description { get; set; }

        /// <summary>
        /// Deleted
        /// </summary>		
        public virtual bool Deleted { get; set; }

        /// <summary>
        /// CreatedOnUtc
        /// </summary>		
        public virtual DateTime CreatedOnUtc { get; set; }

        /// <summary>
        /// UpdatedOnUtc
        /// </summary>		
        public virtual DateTime UpdatedOnUtc { get; set; }

        /// <summary>
        /// Gets or sets the shareBuy comments
        /// </summary>
        public virtual ICollection<ShareBuyComment> ShareBuyComments
        {
            get { return _shareBuyComments ?? (_shareBuyComments = new List<ShareBuyComment>()); }
            set { _shareBuyComments = value; }
        }

        /// <summary>
        /// Gets or sets the shareBuy pictures
        /// </summary>
        public virtual ICollection<ShareBuyPicture> ShareBuyPictures
        {
            get { return _shareBuyPictures ?? (_shareBuyPictures = new List<ShareBuyPicture>()); }
            set { _shareBuyPictures = value; }
        }

        /// <summary>
        /// Gets or sets the shareBuy categories
        /// </summary>
        public virtual ICollection<ShareBuyCategory> ShareBuyCategories
        {
            get { return _shareCategories ?? (_shareCategories = new List<ShareBuyCategory>()); }
            set { _shareCategories = value; }
        }

        /// <summary>
        /// Gets or sets the shareBuy votes
        /// </summary>
        public virtual ICollection<ShareBuyVote> ShareBuyVotes
        {
            get { return _shareBuyVotes ?? (_shareBuyVotes = new List<ShareBuyVote>()); }
            set { _shareBuyVotes = value; }
        }
    }
}